package com.kkb.kkbadmin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.kkb.kkbadmin.domain.ProjectInfo;
import com.kkb.kkbadmin.domain.User;

//IService<ProjectInfo> 继承mp内置的service接口
public interface ProjectManagementService extends IService<ProjectInfo> {
    /**
     * 分页查询
     *
     * @param condition 条件对象
     * @param pageNum   当前页码
     * @param pageSize  每页条数
     * @param user      用户信息
     * @return PageInfo<ProjectInfo>
     */
    PageInfo<ProjectInfo> findPage(ProjectInfo condition, User user, int pageNum, int pageSize);

    /**
     * 根据项目id查询已完成的项目
     *
     * @param id
     * @return 项目信息
     */
    ProjectInfo finished(Long id);

    /**
     * 添加项目
     *
     * @param info 项目信息
     */
    void add(ProjectInfo info);

    /**
     * 根据ID查询项目
     *
     * @param id 项目
     * @return ProjectInfo
     */
    ProjectInfo findById(long id);

    /**
     * 根据id修改项目信息
     *
     * @param info 项目信息
     */
    void update(ProjectInfo info, long id);

    /**
     * 删除
     *
     * @param id 项目id
     */
    void delete(long id);

    /**
     * 修改项目状态
     *
     * @param id     项目id
     * @param status 项目状态码  0报名中、1进行中、2已完成、3已取消
     */
    void updateStatus(Long id, Integer status);

    /**
     * 管理员审核导师 ：修改报名表的状态为已报名
     *
     * @param user      导师
     * @param projectId 项目id
     */
    void auditTeacher(User user, Long projectId);
}
